﻿YUI.add('matriculacion-estudiante-view', function (Y) {
    Y.MatriculacionEstudianteView = Y.Base.create('MatriculacionEstudianteView', Y.View, [], {
        loadTemplate: function () {
            if (this.template == '') {
                var that = this,
                request = Y.io('/ExcellentProject/scripts/views/seguridades/estudiantes/templates/asistenteMatriculacionEstudiante.html', {
                    on: {
                        complete: function (id, response) {
                            that.templateIsCharged = true;
                            that.template = response.responseText;
                            try {
                                $('#table_id').parent().replaceWith('');
                            }
                            catch (err) {
                                console.log(err);
                            }
                            that.render();
                        },
                        failure: function (id, response) {
                            alert(response, 'Error al cargar la lista de Cursos')
                        }

                    }
                })
            }
        },
        render: function () {
            this.loadTemplate();
            if (this.templateIsCharged) {
                this.get('container').setHTML(this.template);
                //var list = this.get('modelList');
                var cursos = new Y.Cursos();
                var that = this, //idCurso = this.get('model').get('Id'),
                    a = cursos.load(function () {

                        var table = $('#table_id').DataTable({
                            "language": {
                                "search": "Buscar:",
                                "lengthMenu": "Items por página: _MENU_",
                                "info": "Items del _START_ al _END_ de _TOTAL_ items.",
                                "emptyTable": "Items no disponibles.",
                                "infoEmpty": "0 ítems.",
                                "paginate": {
                                    "next": "Siguiente",
                                    "previous": "Anterior",
                                    "first": "Primero",
                                    "last": "Ultimo"
                                }
                            },
                            "paging": true,
                            retrieve: true,
                            data: cursos.toJSON(),
                            "rowCallback": function (row, aData) {
                                $('td:eq(7)', row).html('<a href="#" class="btn btn-info matricular" id=boton"' + aData.IdCurso + '" curso="' + aData.IdCurso + '">' +
                                   'Matricular</a>');
                            },
                            columns: [
                                { data: 'IdCurso' },
                                { data: 'NombreCurso' },
                                { data: 'Descripcion' },
                                { data: 'Docente' },
                                { data: 'Periodo' },
                                { data: 'FechaInicio' },
                                { data: 'FechaFin' },
                                { data: 'IdCurso' }
                            ]
                        });
                        table.draw();
                    });
            }
        },

        events: {
            '.matricular': {
                click: 'matricularEstudiante'
            },
            '.backEvent': {
                click: 'regresarADatosRepresentante'
            },
            'cancelEvent': {
                click: 'cancelar'
            }
        },

        matricularEstudiante: function (ev) {
            ev.preventDefault();
            debugger


            var studentModel = (new Y.Estudiante()).setAttrs(Y.JSON.parse(amplify.store('studentModel')));

            var options = null;

            studentModel.set('IdCurso', ev.target.getAttribute('curso'));
            options = { action: 'update', idEst: studentModel.get('Id') };

            var those = this, newModel = studentModel.save(options, function (err, response) {
                if (err != null)
                    bootbox.dialog({
                        message: "Ocurrieron problemas al matricular al estudiante",
                        title: "Problemas al matricular al estudiante",
                        show: true,
                        backdrop: true,
                        closeButton: true,
                        animate: true,

                        className: "my-modal",
                        buttons: {
                            success: {
                                label: "Ok",
                                className: "btn btn-danger",

                                callback: function () { }
                            }
                        }
                    });
                else {
                    debugger

                    bootbox.dialog({
                        message: "<h5>Estudiante Matriculado</h5>",
                        title: "Confirmación",
                        show: true,
                        backdrop: true,
                        closeButton: true,
                        animate: true,

                        className: "my-modal",
                        buttons: {
                            success: {
                                label: "Ok",
                                className: "btn btn-success",

                                callback: function () { }
                            }
                        }
                    });


                    Y.one('#navigationButton').set('href', '/estudiantes')
                    Y.one('#navigationButton').simulate("click");
                }
            });

        },

        regresarADatosRepresentante: function (ev) {
            if (ev.preventDefault)
                ev.preventDefault();
            else
                ev.returnValue = false;
            Y.one('#navigationButton').set('href', '/estudiantes/representante/' + this.get('model').get('Representante'))
            Y.one('#navigationButton').simulate("click");
        },
        cancelar: function (ev) {
            if (ev.preventDefault)
                ev.preventDefault();
            else
                ev.returnValue = false;
            localStorage.removeItem('studentModel')
            Y.one('#navigationButton').set('href', '/estudiantes')
            Y.one('#navigationButton').simulate("click");
        }


    }), '0.0.0.1', {
        requires: ['view', 'curso-consulta-model-list', 'curso-consulta-model', 'estudiante-consulta-model-list',
                   'estudiante-consulta-model', 'io', 'handlebars']
    }
})